# 导入模块
import requests
from bs4 import BeautifulSoup
from datetime import datetime


# 自定义函数
def get_content_form_url(url:str):
    """
    根据提供的URL获取该URL网页的内容
    :param url: 提供的URL
    :return: 页面的HTML标签
    """
    # 请求
    response = requests.get(url)
    # 把返回的内容解码
    content = response.content.decode("utf-8")
    # 返回
    return content


def get_data_url(url: str):
    """
    爬取数据筛选出有价值的内容
    :param url: 提供的url
    :return: 返回有价值的内容
    """
    # 获取页面内容
    content = get_content_form_url(url)
    # 开始提取有价值的数据 -- 使用bs4
    soup = BeautifulSoup(content, 'lxml')
    # 第一步筛选
    city_weathers = soup.find('div', id="HUABEI").find_all('div', class_='col-xs-4')
    # 定义一个集合 [{},{},{},{}]
    weathers = []
    # 开始遍历
    for value in city_weathers:
        # 定义一个dict
        temp_dict = {}

        # 添加城市名称
        temp_dict['city'] = str(value.find('div', class_='col-xs-3').text).strip()
        # 添加今天的日期
        temp_dict['date'] = datetime.now().strftime("%Y-%m-%d")
        # 添加天气
        temp_dict['weather'] = str(value.find('div', class_='col-xs-3 wdesc').text).strip()
        # 添加最低气温
        temp_dict['low'] = str(value.find('span', class_='low').text).strip().replace("℃","")
        # 添加最高气温
        temp_dict['hight'] = str(value.find('span', class_='hight').text).strip().replace("℃", "")
        # 附加到集合
        weathers.append(temp_dict)

    # 返回
    return weathers




if __name__ == '__main__':
    # 提供url
    url = "http://www.nmc.cn/publish/forecast.html"
    result = get_data_url(url)
    print(result)